
using System;
using System.IO;

using iTextSharp.text;
using iTextSharp.text.pdf;

public class Sharp0511
{
    public static void _Main()
    {
        Console.WriteLine("Chapter 5 example 11: avoid table splitting");
        // step 1: creation of a document-object
        Document document = new Document();
        try
        {
            // step 2:
            // we create a writer that listens to the document
            // and directs a PDF-stream to a file
            PdfWriter.GetInstance(document, new FileStream("Sharp0511.pdf", FileMode.Create));
            // step 3: we open the document
            document.Open();
            // step 4: we create a table and add it to the document
            PdfPTable table = new PdfPTable(5);

            table.DefaultCell.BorderWidth = 1;
            table.DefaultCell.BorderColor = new Color(0, 0, 255);
            table.DefaultCell.Padding = 5;
            //table.Spacing = 5;
            PdfPCell cell = new PdfPCell(new Phrase("header"));
            //cell.Header = true;
            cell.Colspan = 3;
            table.AddCell(cell);
            cell = new PdfPCell(new Phrase("example cell with colspan 1 and rowspan 2"));
            cell.Rowspan = 2;
            cell.BorderColor = new Color(255, 0, 0);
            table.AddCell(cell);
            table.AddCell("1.1");
            table.AddCell("2.1");
            table.AddCell("1.2");
            table.AddCell("2.2");
            table.AddCell("cell test1");
            cell = new PdfPCell(new Phrase("big cell"));
            cell.Rowspan = 2;
            cell.Colspan = 2;
            cell.BackgroundColor = new Color(0xC0, 0xC0, 0xC0);
            table.AddCell(cell);
            table.AddCell("cell test2");
            document.Add(new Paragraph("repeating the same table 10 times:"));
            for (int i = 0; i < 10; i++)
            {
                document.Add(table);
            }
        }
        catch (DocumentException de)
        {
            Console.Error.WriteLine(de.Message);
        }
        catch (IOException ioe)
        {
            Console.Error.WriteLine(ioe.Message);
        }
        // step 5: we close the document
        document.Close();
    }
}